#ifndef RENDER_H_
#define RENDER_H_


#include <stdio.h>
#include <stdlib.h>
#include <SDL/SDL.h>
#include <SDL/SDL_image.h>
#include <GL/gl.h>
#include <GL/glu.h>


extern int SE_utils_powerof2(int number);



extern SDL_Surface *screen;




typedef struct
{
GLuint texture;
int w,h;
int x,y,z;
float zoomx,zoomy;
GLfloat rotx,roty,rotz;
int invert;/*dibuja la textura invertida,0 normal, 1 horizontal, 2 vertical*/
float alpha;
float r,g,b;
}SE_image;


int SE_initgraphics();/*inicia graficos*/

/*funciones de opengl*/
void enable2d();/*setea proyeccion ortogonal*/
void disable2d();/*setea proyeccion en perspectiva*/


void SE_clearscreen(float r,float g,float b,float a);/*borra la pantalla con un color*/
SE_image *SE_image_load(char *path);/*carga la textura*/


void SE_image_draw(SE_image *img);/*renderea la textura completa*/
void SE_image_segment_draw(SE_image *img,int xtex,int ytex,int wtex,int htex,int posx,int posy,float rotx,float roty,float rotz,int concatenate);


void SE_image_clean(SE_image *img);/*borra textura*/
void SE_flip();/*flipea el cuadro o escena*/

/*transformaciones:*/
void SE_image_position(SE_image *img,int posx,int posy,int posz);/*setea posicion en los 3 ejes*/
void SE_image_size(SE_image *img,int width,int height);/*setea valores de ancho y alto*/
void SE_image_zoomx(SE_image *img,float zoomx);
void SE_image_zoomy(SE_image *img,float zoomy);
void SE_image_zoom(SE_image *img,float zoom);/*zoom que se multiplica por el ancho y alto*/
void SE_image_rotationx(SE_image *img,GLfloat rotationx);
void SE_image_rotationy(SE_image *img,GLfloat rotationy);
void SE_image_rotationz(SE_image *img,GLfloat rotationz);
void SE_image_rotation(SE_image *img,GLfloat rotationx,GLfloat rotationy,GLfloat rotationz);/*setea rotaciones*/
void SE_image_alpha(SE_image *img,float alpha_magnitude);/*transparencia, 1.0 opaco, 0.0 transparente*/
void SE_image_tint(SE_image *img,float red,float green,float blue);/*entintado del bitmap*/
void SE_image_light(SE_image *img,float light_intensity);/*intensidad de la luz*/


#endif


